'''
                       _oo0oo_
                      o8888888o
                      88" . "88
                      (| -_- |)
                      0\  =  /0
                    ___/`---'\___
                  .' \\|     |// '.
                 / \\|||  :  |||// \
                / _||||| -:- |||||- \
               |   | \\\  - /// |   |
               | \_|  ''\---/''  |_/ |
               \  .-\__  '-'  ___/-. /
             ___'. .'  /--.--\  `. .'___
          ."" '<  `.___\_<|>_/___.' >' "".
         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
         \  \ `_.   \_ __\ /__ _/   .-` /  /
     =====`-.____`.___ \_____/___.-`___.-'=====
                       `=---='


     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

           佛祖保佑       永不宕机     永无BUG

       佛曰:  
               写字楼里写字间，写字间里程序员；  
               程序人员写程序，又拿程序换酒钱。  
               酒醒只在网上坐，酒醉还来网下眠；  
               酒醉酒醒日复日，网上网下年复年。  
               但愿老死电脑间，不愿鞠躬老板前；  
               奔驰宝马贵者趣，公交自行程序员。  
               别人笑我忒疯癫，我笑自己命太贱；  
               不见满街漂亮妹，哪个归得程序员？
'''



'''
Author: xubing
Date: 2021-06-01 11:51:01
LastEditors: xubing
LastEditTime: 2021-06-04 16:10:16
Description: file content
'''

from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
from scipy.linalg import norm

def tf_similarity(s1, s2):
    def add_space(s):
        return ' '.join(list(s))

    s1, s2 = add_space(s1), add_space(s2) #在字中间加上空格
    cv = CountVectorizer(tokenizer=lambda s: s.split()) #转化为TF矩阵
    corpus = [s1, s2]
    vectors = cv.fit_transform(corpus).toarray() #计算TF系数
    return np.dot(vectors[0], vectors[1]) / (norm(vectors[0]) * norm(vectors[1]))

s1 = '武汉武昌区水果湖街道中北路中北春天3100'
s2 = '郑州市中原区'
s3 = '武汉市武昌区'
print(tf_similarity(s1, s2))
print(tf_similarity(s1, s3))


# class Simlarity:
#     def __init__(self):
#         super(Simlarity, self).__init__()
#     # 包含县的处理逻辑
#     def _contain_area():
#         pass
#     # 包含市的处理逻辑
